const svgCaptcha = require('svg-captcha');

const generateCaptcha = async (ctx) => {
    // 生成验证码
    const captcha = svgCaptcha.create({
        size: 4, // 验证码长度
        noise: 2, // 干扰线条数
        color: true, // 验证码字符将有不同的颜色
        background: '#f0f0f0', // 背景色
        width: 120,
        height: 38
    });

    // 将验证码文本存储在session中
    ctx.session.captcha = captcha.text.toLowerCase();
    
    // 设置响应头
    ctx.set('Content-Type', 'image/svg+xml');
    ctx.body = captcha.data;
};

const verifyCaptcha = (captcha, session) => {
    if (!captcha || !session.captcha) {
        return false;
    }
    return captcha.toLowerCase() === session.captcha;
};

module.exports = {
    generateCaptcha,
    verifyCaptcha
}; 